package cn.commander.base;

import java.io.Serializable;
import java.util.List;

/**
 * @Description: Mapper基础接口
 * @Created by:
 * @Date: 2016/7/27 15:01
 * @Version: 1.0
 */
//@Repository
public interface BaseMapper<T, PK extends Serializable> {

	/**
	 * 查询
	 *
	 * @param id
	 * @return
	 */
	T selectByPrimaryKey(PK id);

	/**
	 * 查询
	 *
	 * @param ids
	 * @return
	 */
	List<T> selectByPrimaryKeys(List<PK> ids);

	/**
	 * 查询
	 *
	 * @param bean
	 * @return
	 */
	List<T> selectBySelective(T bean);


	/**
	 * 插入数据
	 *
	 * @param bean
	 * @return
	 */
	int insert(T bean);

	/**
	 * 插入数据
	 *
	 * @param bean
	 * @return
	 */
	int insertSelective(T bean);

	/**
	 * 更新
	 *
	 * @param bean
	 * @return
	 */
	int updateByPrimaryKeySelective(T bean);

	/**
	 * 更新
	 *
	 * @param bean
	 * @return
	 */
	int updateByPrimaryKey(T bean);

	/**
	 * 根据主键删除
	 *
	 * @param id
	 * @return
	 */
	int deleteByPrimaryKey(PK id);
}
